package com.smart.system.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smart.common.core.page.PageQuery;
import com.smart.system.domain.AreaLocation;
import com.smart.system.domain.Car;
import com.baomidou.mybatisplus.extension.service.IService;
import com.smart.system.domain.CarTrajectory;

/**
 * 车辆Service接口
 * 
 * @author smart
 * @date 2024-09-18
 */
public interface ICarService extends IService<Car>
{
    /**
     * 查询车辆
     * 
     * @param id 车辆主键
     * @return 车辆
     */
    public Car selectCarById(String id);

    /**
     * 查询车辆列表
     * 
     * @param car 车辆
     * @return 车辆集合
     */
    public IPage<Car> selectCarList(Car car, PageQuery pageQuery);

    /**
     * 新增车辆
     * 
     * @param car 车辆
     * @return 结果
     */
    public int insertCar(Car car);

    /**
     * 修改车辆
     * 
     * @param car 车辆
     * @return 结果
     */
    public int updateCar(Car car);

    /**
     * 批量删除车辆
     * 
     * @param ids 需要删除的车辆主键集合
     * @return 结果
     */
    public int deleteCarByIds(String[] ids);

    /**
     * 删除车辆信息
     * 
     * @param id 车辆主键
     * @return 结果
     */
    public int deleteCarById(String id);

    /**
     * 修改车辆状态
     * @param id
     * @return
     */
    boolean changeStatus(Integer id,Integer status);

    /**
     * 数据大屏车辆列表
     * @param areaId
     * @param toPage
     * @return
     */
    IPage<Car> listCar(Integer areaId, Page toPage);

    /**
     * 获取车辆定位
     * @param id
     * @return
     */
    CarTrajectory getLocation(Integer id);
}
